In [2]:
library(conos)
source('lib.r')
In [3]:

In [26]:
load('Stromal.Nov.RData')
In [9]:
# Rename MSC-3
ano[ano=='MSC-3']='Fibroblasts'

a2=scon$plotGraph(groups=ano,raster=TRUE,plot.na=F,size=0.1,alpha=0.1,font.size = c(5, 5.5),palette=anoS.palf)
a2
ggsave('Stromal.emb.new.v2.pdf',a2,height=4,width=4)
ano
Endothelial       MSC-1       MSC-2       MSC-3 osteoblasts osteoclasts 
       1357        8602        2521         243         263         185 
     Peri-1      Peri-2      Peri-3 
        862        4026        1029 
In [11]:
library(cowplot)
features = c('CDH11','NT5E','ENG','CD34','CXCL12','LEPR')#,'LRRC15'
pl=lapply(sn(features), function(x) {print(x);
   scon$plotGraph(gene=x, title=x,size=0.1,alpha=0.7,raster = TRUE)})

b=plot_grid(plotlist=pl, nrow = 2)
b
[1] "CDH11"
[1] "NT5E"
[1] "ENG"
[1] "CD34"
[1] "CXCL12"
[1] "LEPR"
In [ ]:

In [12]:
features = c('FAP','FN1','CD44','ITGA5','INHBA','HTRA1')#,'LRRC15'
pl=lapply(sn(features), function(x) {print(x);
   scon$plotGraph(gene=x, title=x,size=0.1,alpha=0.7,raster = TRUE)})

b=plot_grid(plotlist=pl, nrow = 2)
b
[1] "FAP"
[1] "FN1"
[1] "CD44"
[1] "ITGA5"
[1] "INHBA"
[1] "HTRA1"
In [ ]:

In [14]:
# 'TNFSF11','TNFRSF11B'
ano = scon$misc$cell.type %>% Toch()
ano = ano[grepl('Peri',ano)] %>% as.factor()
genes=c('KCNJ8','ABCC9','FN1','COL6A1', 'COL6A2', 'COL6A3','AXL','ADIRF','ACTA2','CNN1','MYH11','TAGLN')#,'IL10','CD163','CCL20','CCL4'
exp <- do.call(rbind,lapply(sn(genes),function(gene) conos:::getGeneExpression(scon,gene)))
exp[is.na(exp)]=0
dim(exp)

cn = intersect(names(ano),rownames(scon$embedding))                            
                            
p=Dotfig(genes,exp[,cn],ano[cn],cols = c("blue","white", "red"))+xlab('')+ylab('')
p
  1. 12
  2. 19126
[1] "blue"
[1] "white"
[1] "red"
In [17]:
scon$plotGraph(gene='TNFRSF11B')
scon$plotGraph(gene='TNFSF11')
In [ ]:

In [ ]:

In [8]:
cao$cell.groups = as.factor(ano)
cao$embedding = cao$embedding[names(ano),] 
cao$estimateCellDensity()
In [9]:
p0 <- cao$plotEmbedding(color.by='cell.groups', alpha=alpha, size=size,palette=anoM.palf,raster = TRUE,
                        title='annotation', show.legend=FALSE, font.size=c(3.5,4),plot.na=F)
pl <- cao$plotCellDensity(add.points=TRUE, show.grid=TRUE,contour.conf = "25%" , contours=c('osteoblasts'),
                          show.cell.groups=FALSE)
plot_grid(p0, plotlist=pl, nrow = 1)
Warning message:
“Removed 8 rows containing missing values (geom_point).”
Warning message:
“Removed 4 rows containing missing values (geom_point).”
In [8]:
cao$estimateDiffCellDensity(type='wilcox', adjust.pvalues=TRUE, verbose=FALSE, n.permutations=500)
In [9]:
plot_grid(
  p0, 
  cao$plotDiffCellDensity(type='wilcox', title='raw', legend.position=c(0,1), 
                          size=size, alpha=alpha, adjust.pvalues=FALSE, 
                          gradient.range.quantile=0.975, color.range='symmetric'),
  cao$plotDiffCellDensity(type='wilcox', title='adj', legend.position=c(0,1),
                          size=size, alpha=alpha, adjust.pvalues=TRUE),
  nrow=1
)
In [24]:
p2= cao$plotDiffCellDensity(type='wilcox', title='Zscore', legend.position=c(0.99,0.14), 
                          size=size, alpha=alpha, adjust.pvalues=FALSE, 
                          gradient.range.quantile=0.975, color.range='symmetric')
p2
In [25]:
b=plot_grid(p0, plotlist=pl,p2, nrow = 2)
b
Warning message:
“Removed 8 rows containing missing values (geom_point).”
Warning message:
“Removed 4 rows containing missing values (geom_point).”
In [26]:
ggsave('stromal.fig1.pdf',b,height=6.3,width=6)
In [ ]:

In [ ]:

In [6]:
features=c("RAMP2","PLVAP" ,'ENG',"CD36",'NT5E',"CXCL12" , "LEPR"  ,   "TIMP1" , "COL6A2", "FN1"  ,   
           'DCN','C3','APOD','MFAP4',"MFAP4", "SPP1",'RUNX2','LAPTM5','VAMP8','ACP5',
                     'RGS5','ACTA2', "THY1",'ADIRF')

library(cowplot)

anoT2 = scon$misc$cell.type %>% as.factor()
cname=names(anoT2)

exp <- do.call(rbind,lapply(sn(features),function(gene) conos:::getGeneExpression(scon,gene)))
exp[is.na(exp)]=0
dim(exp)

cname = intersect(cname,colnames(exp))

exp= exp[rowMeans(exp)>0,]
features=intersect(features,rownames(exp))
p=Dotfig(features,exp[,cname],anoT2[cname],cols = c("blue","white", "red"))+xlab('')+ylab('')
p
                            
                            
ggsave('F4B.marker2.pdf',p,height=7.1,width=5.6)
  1. 24
  2. 19126
[1] "blue"
[1] "white"
[1] "red"
In [47]:
scon$plotGraph(gene='CSF1')
scon$plotGraph(gene='TGFB1')
scon$plotGraph(gene='CSF1R')
scon$plotGraph(gene='TNFSF12')
scon$plotGraph(gene='TNFRSF11B')
In [6]:
# 'TNFSF11','TNFRSF11B'
ano = scon$misc$cell.type %>% Toch()
ano = ano[grepl('MSC',ano)] %>% as.factor()
genes=c('IL8','TGFB1','VEGFA','VEGFB','COL6A2','COL4A2','COL4A1','COL18A1','COL3A1')#,'IL10','CD163','CCL20','CCL4'
exp <- do.call(rbind,lapply(sn(genes),function(gene) conos:::getGeneExpression(scon,gene)))
exp[is.na(exp)]=0
dim(exp)

cn = intersect(names(ano),rownames(scon$embedding))
#stacked.plot(ano[cn],genes,exp,anoT.pal = NULL,'violin.r.pdf',height = 0.7)
                            
                            
exp= exp[rowMeans(exp)>0,]
features=intersect(genes,rownames(exp))

ano = ano[cn]                           
ano2 = paste(Toch(ano),Toch(scon$misc$stype)[names(ano)])
names(ano2) = names(ano)
ano2 = as.factor(ano2)
                            
p=Dotfig(genes,exp[,cn],ano2[cn],cols = c("blue","white", "red"))
p
                            
ggsave('dot.genes.pdf',p,height=4.1,width=4.5)
  1. 9
  2. 19126
[1] "blue"
[1] "white"
[1] "red"
In [109]:
ano2[1:4]
  1. MSC-2 Tumor
  2. MSC-2 Tumor
  3. MSC-2 Tumor
  4. MSC-1 Tumor
Levels:
  1. 'MSC-1 Benign'
  2. 'MSC-1 Tumor'
  3. 'MSC-2 Benign'
  4. 'MSC-2 Tumor'
  5. 'MSC-3 Benign'
  6. 'MSC-3 Tumor'
In [18]:
a1= scon$plotGraph(gene='TNFSF11',size=0.2,alpha=0.5,raster = TRUE,title= 'TNFSF11')
a2 =  scon$plotGraph(gene='TNFRSF11B',size=0.2,alpha=0.5,raster = TRUE,title= 'TNFRSF11B')

ggsave('TNFSF11.exp.pdf',a1,height=2.2,width=2.1)
ggsave('TNFRSF11B.exp.pdf',a2,height=2.2,width=2.1)
In [70]:
a1= scon$plotGraph(gene='TGFB1',size=0.2,alpha=0.5,raster = TRUE,title= 'TGFB1')
ggsave('TGFB1.exp.pdf',a1,height=2.2,width=2.1)
In [68]:
cn2 = names(ano[ano=='MSC-1']) %>% intersect(.,colnames(exp))
table(scon$misc$stype[cn2])
Benign  Tumor 
  8157    445 
In [59]:
dim(exp)

modify_vlnplot1('TNFRSF11B',scon$misc$stype[cn2],exp,colp = NULL,height = 0.7,pt.size=0.1)
  1. 2
  2. 19126
Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

In [5]:
table(scon$misc$cell.type)
Endothelial       MSC-1       MSC-2       MSC-3 osteoblasts osteoclasts 
       1357        8602        2521         243         263         185 
     Peri-1      Peri-2      Peri-3 
        862        4026        1029 
In [ ]:

In [30]:
ano = scon$misc$cell.type %>% Toch()
#ano = ano[grepl('MSC',ano)] %>% as.factor()
genes=c('IL8','TGFB1','VEGFA','VEGFB','COL6A2','COL4A2','COL4A1','COL18A1','COL3A1','TNFRSF11A')#,'IL10','CD163','CCL20','CCL4'
genes=c('LRP5', 'ALPL', 'FBN1', 'BGLAP','BMP4')#,'IL10','CD163','CCL20','CCL4'

exp <- do.call(rbind,lapply(sn(genes),function(gene) conos:::getGeneExpression(con0,gene)))
exp[is.na(exp)]=0
dim(exp)
                            
cn2 = names(ano[ano=='osteoblasts']) %>% intersect(.,colnames(exp))
table(scon$misc$stype[cn2])    
        
tmp = scon$misc$stype[cn2] %>% Toch() %>% as.factor()
stacked.plot(tmp,genes,exp,fraction.palette1[levels(tmp)],'osteoblasts.pdf',height = 0.6,pt.size  =0.1)
  1. 5
  2. 31284
Benign  Tumor 
    58    127 
Warning message in SingleExIPlot2(data = data2, idents = ano2, split = NULL, type = "violin", :
“All cells have the same value of LRP5.”
Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Warning message in SingleExIPlot2(data = data2, idents = ano2, split = NULL, type = "violin", :
“All cells have the same value of BGLAP.”
Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

In [ ]:
table(scon$misc$cell.type)
In [31]:
ano = scon$misc$cell.type %>% Toch()
#ano = ano[grepl('MSC',ano)] %>% as.factor()
genes=c('IL8','TGFB1','VEGFA','VEGFB','COL6A2','COL4A2','COL4A1','COL18A1','COL3A1','TNFRSF11A')#,'IL10','CD163','CCL20','CCL4'
genes=c('CA2','TCIRG1','CLCN7','OSTM1','PLEKHM1')#,'IL10','CD163','CCL20','CCL4'

exp <- do.call(rbind,lapply(sn(genes),function(gene) conos:::getGeneExpression(con0,gene)))
exp[is.na(exp)]=0
dim(exp)
                            
cn2 = names(ano[ano=='osteoclasts']) %>% intersect(.,colnames(exp))
table(scon$misc$stype[cn2])    
        
tmp = scon$misc$stype[cn2] %>% Toch() %>% as.factor()
stacked.plot(tmp,genes,exp,fraction.palette1[levels(tmp)],'osteoclasts.pdf',height = 0.6,pt.size  =0.1)
  1. 5
  2. 31284
Benign  Tumor 
   256      7 
Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

In [ ]:

In [ ]:

In [ ]:

In [33]:
df=getExp_Sample(exp,'TNFRSF11A',ano[cn2],scon$getDatasetPerCell(),scon$misc$stype[cn2],min.num.cell=5,scale=NULL)

dat2 = data.frame(value = df[['score']], cell = df[['group']], sample = df[['sample']] , Type = df[['fraction']])
library('dplyr')
dat2$Type = as.factor(dat2$Type)

library(ggpubr)
sig=compare_means(value ~ Type,  data = dat2,method='t.test') # 
sig
siglis=split(sig, seq(nrow(sig)))
pair=lapply(siglis,function(x) as.character(x[,2:3]))
              
pair           
              
fig = plotMeanMedValuesPerCellType(dat2,type='box', notch = FALSE, show.jitter=TRUE, jitter.alpha=0.2,yline=NULL,plot.theme=theme_classic(),
                                           palette = fraction.palette1,order.x = FALSE,ylab = 'TNFRSF11A expression')+ 
            theme(axis.text.y=element_text(size=10,angle = 60))+
              stat_compare_means(comparisons = pair,label = "p.signif",hide.ns=TRUE,size=6,tip.lengt=0.01,bracket.size =0.3,label.y.npc = "bottom")+
              ylim(c(min(dat2$value),max(dat2$value)*1.15))
fig

ggsave('TNFRSF11A.osteoclasts.boxplot.pdf',height=2.4,width=1.7)
            
#drawBoxplot('TNFSF11',dat2,'CTNFSF11 expression',fraction.palette1)
A tibble: 1 × 8
.y.group1group2pp.adjp.formatp.signifmethod
<chr><chr><chr><dbl><dbl><chr><chr><chr>
valueBenignTumor0.025890010.0260.026*T-test
$`1` =
  1. 'Benign'
  2. 'Tumor'
Warning message in wilcox.test.default(c(0, 0, 0, 0), c(0.0268806140117812, 0.0298809718639906, :
“cannot compute exact p-value with ties”
Warning message:
“Removed 2 rows containing missing values (geom_point).”
Warning message in wilcox.test.default(c(0, 0, 0, 0), c(0.0268806140117812, 0.0298809718639906, :
“cannot compute exact p-value with ties”
Warning message:
“Removed 2 rows containing missing values (geom_point).”
In [ ]:

In [ ]:
cname = scon$misc$cell.type %>% .[.=='MSC-2'] %>% names()

fig1 = modify_vlnplot1('TGFB1', 
        scon$misc$stype[cname], exp, colp = NULL, pt.size = 0,stack = FALSE)+theme(legend.position='none')

fig1
In [67]:
cao$estimatePerCellTypeDE(independent.filtering=TRUE, test='DESeq2.Wald')
cao$plotNumberOfDEGenes(pvalue.cutoff=1e-3, p.adjust=FALSE, show.size.dependency=TRUE, font.size=3)
DE method DESeq2.Wald is used


DEs not calculated for 2 cell group(s):

[1] "osteoblasts" "Peri-3"     
Warning message in cao$plotNumberOfDEGenes(pvalue.cutoff = 0.001, p.adjust = FALSE, :
“resampling results are missing for at least some cell types, falling back to point estimates. Please rerun estimatePerCellTypeDE() with resampling='bootstrap' or resampling='loo'”
Don't know how to automatically pick scale for object of type table. Defaulting to continuous.

In [74]:
tmp = cao$test.results$de$`MSC-2`
tmp = tmp$res
A data.frame: 1 × 11
baseMeanlog2FoldChangelfcSEstatpvaluepadjZZaGeneCellFracSampleFrac
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl>
TGFB124.704812.0967190.29669537.0669111.584201e-121.228722e-107.0669116.435741TGFB10.1911941
In [89]:
org <- org.Hs.eg.db
cao$estimateOntology(type="GO", org.db=org, n.top.genes=500)
Using stored GO environment. Use `ignore.cache=TRUE` if you want to re-estimate it. Set `ignore.cache=FALSE` to suppress this message.

Estimating enriched ontologies ... 
In [ ]:
cao$plotOntologyDistribution(type="GO")
In [90]:
cao$plotOntologySimilarities(type = "GO", genes = "up") # Try also down-regulated
Scale for 'fill' is already present. Adding another scale for 'fill', which
will replace the existing scale.

In [20]:

In [28]:
library(clusterProfiler)
cao$plotOntology(type="GO", genes="up", cell.subgroup=x, plot='dot', font.size=8)
In [ ]:

In [4]:
names(cao$test.results$de)
  1. 'Endothelial'
  2. 'MSC-1'
  3. 'MSC-2'
  4. 'MSC-3'
  5. 'osteoclasts'
  6. 'Peri-1'
  7. 'Peri-2'
In [5]:
res=cao$test.results$de$`osteoclasts`$res

library(EnhancedVolcano)
# create custom key-value pairs for 'high', 'low', 'mid' expression by fold-change
  # this can be achieved with nested ifelse statements
  keyvals <- ifelse(
    res$log2FoldChange <= -2 & res$padj < 0.01, 'royalblue',
      ifelse(res$log2FoldChange >= 2 & res$padj < 0.01, 'gold',
        'black'))


  keyvals[is.na(keyvals)] <- 'black'
  names(keyvals)[keyvals == 'gold'] <- 'high'
  names(keyvals)[keyvals == 'black'] <- 'mid'
  names(keyvals)[keyvals == 'royalblue'] <- 'low'
  
  
  keyvalssize = keyvals
   keyvalssize[keyvalssize == 'gold'] <- 1
  keyvalssize[keyvalssize == 'black'] <- 3
  keyvalssize[keyvalssize == 'royalblue'] <- 3
  keyvalssize = as.numeric(keyvalssize)
  
  
  keyvalssize <- ifelse(
    res$log2FoldChange <= -2 & res$padj < 0.01, 3,
      ifelse(res$log2FoldChange >= 2 & res$padj < 0.01, 3,
        1))
  
  
 fig=EnhancedVolcano(res,
    lab = rownames(res),
    x = 'log2FoldChange',
    y = 'padj',
    title=NULL,
    subtitle=NULL, 
    caption=NULL,
    selectLab = rownames(res)[which(names(keyvals) %in% c('high', 'low'))],
    xlab = bquote(~Log[2]~ 'fold change'),
    ylab = bquote(~Log[10]~ 'padj'),
    pCutoff = 0.001,
    FCcutoff = 2,
    pointSize = keyvalssize, #3.5,
    labSize = 4.5,
    #shape = c(6, 4, 2, 11),
    colCustom = keyvals,
    colAlpha = 1,
    legendPosition = 'none',
    legendLabSize = 15,
    legendIconSize = 5.0,
    drawConnectors = TRUE,
    widthConnectors = 1.0,
    colConnectors = 'black',
    arrowheads = FALSE,
    gridlines.major = TRUE,
    gridlines.minor = FALSE,
    border = 'partial',
    borderWidth = 1.5,
    borderColour = 'black')
 
 fig
Loading required package: ggrepel

Warning message:
“ggrepel: 245 unlabeled data points (too many overlaps). Consider increasing max.overlaps”
In [6]:
ggsave('Volcano.osteoclasts.pdf',fig,height=4,width=4.7)
Warning message:
“ggrepel: 264 unlabeled data points (too many overlaps). Consider increasing max.overlaps”
In [95]:

Warning message:
“ggrepel: 132 unlabeled data points (too many overlaps). Consider increasing max.overlaps”
In [97]:
save.image(file='Stromal.Nov.RData')
In [98]:
saveRDS(scon$misc$cell.type,'cell.ano.Nov.rds')
In [99]:
saveRDS(scon,'../con.stromal.v2.rds')
In [103]:
scon$plotGraph(gene='TNFSF12')
scon$plotGraph(gene='TNFRSF12A')
scon$plotGraph(gene='VEGFA')
scon$plotGraph(gene='VEGFB')
In [112]:
scon$plotGraph(gene='KDR')
scon$plotGraph(gene='FLT1')
In [ ]:

In [31]:
p <- ggplot(na.omit(df1),aes(x=cell,y=pc.of.sample,dodge=Group,fill=Group))+geom_boxplot(notch=FALSE,outlier.shape=NA)  +  geom_point(position = position_jitterdodge(jitter.width=0.1),color=adjustcolor(1,alpha=0.3),pch=19,size=0.5)+theme_classic()+
    theme(axis.text.x = element_text(angle = 90, hjust = 1), axis.text.y = element_text(angle = 90, hjust = 0.5))  +xlab("") +ylab('Total fraction of stromal cells')+theme(legend.position="top") +
    scale_fill_manual(values=fraction.palette1)+ggpubr::stat_compare_means(aes(group = Group),label = "p.signif")

p1 <- ggplot(na.omit(df2),aes(x=cell,y=pc.of.sample,dodge=Group,fill=Group))+geom_boxplot(notch=FALSE,outlier.shape=NA)  +  geom_point(position = position_jitterdodge(jitter.width=0.1),color=adjustcolor(1,alpha=0.3),pch=19,size=0.5)+theme_classic()+
    theme(axis.text.x = element_text(angle = 90, hjust = 1), axis.text.y = element_text(angle = 90, hjust = 0.5))  +xlab("") +ylab('Total fraction of stromal cells')+theme(legend.position="top") +
    scale_fill_manual(values=fraction.palette1)+ggpubr::stat_compare_means(aes(group = Group),label = "p.signif")

p
p1

ggsave('fraction1.pdf',p,height=3.7,width=1.7)


ggsave('fraction2.pdf',p1,height=3.7,width=3)
In [14]:
names(con0$samples)
  1. 'RCC-BM10-Tumor'
  2. 'RCC-BM3-Tumor'
  3. 'RCC-BM4-Tumor'
  4. 'RCC-BM5-Tumor'
  5. 'RCC-BM7-Tumor'
  6. 'RCC-BM1-Tumor'
  7. 'RCC-BM2-Tumor'
  8. 'RCC-BM9-Tumor'
In [32]:
ano = scon$misc$cell.type %>% Toch()
#ano = ano[grepl('MSC',ano)] %>% as.factor()
genes=c('CA2','TCIRG1','CLCN7','OSTM1','PLEKHM1')#,'IL10','CD163','CCL20','CCL4'

genes=c('FB1','ALPL','LRP5')#,'IL10','CD163','CCL20','CCL4'


exp <- do.call(rbind,lapply(sn(genes),function(gene) conos:::getGeneExpression(con0,gene)))
exp[is.na(exp)]=0
dim(exp)
                            
cn2 = names(ano[ano=='MSC-1']) %>% intersect(.,colnames(exp))
table(scon$misc$stype[cn2])
  1. 3
  2. 31284
Benign  Tumor 
  8157    445 
In [26]:
table(ano)
ano
Endothelial       MSC-1       MSC-2       MSC-3 osteoblasts osteoclasts 
       1357        8602        2521         243         263         185 
     Peri-1      Peri-2      Peri-3 
        862        4026        1029 
In [35]:
dim(exp)
gene='CA2'
#modify_vlnplot1(gene,scon$misc$stype[cn2],exp,colp = NULL,height = 0.7,pt.size=0.1)
tmp = scon$misc$stype[cn2] %>% Toch() %>% as.factor()
stacked.plot(tmp,genes,exp,fraction.palette1[levels(tmp)],'MSC-1.pdf',height = 0.6,pt.size  =0.1)
  1. 3
  2. 31284
Warning message in SingleExIPlot2(data = data2, idents = ano2, split = NULL, type = "violin", :
“All cells have the same value of FB1.”
Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

In [36]:
gene = 'ALPL'
scon$plotGraph(gene=gene)

modify_vlnplot1(gene,scon$misc$stype[cn2],exp,colp = NULL,height = 0.9,pt.size=0.1)
Scale for 'y' is already present. Adding another scale for 'y', which will
replace the existing scale.

In [ ]:

In [ ]:

In [ ]: